Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Displaying Rendered • View rawDownload


lang/README.de.md HEAD (b89dc9e6) Text, 20.63 KB

Reticulum MeshChatX


Ein umfassend modifizierter und funktionsreicher Fork von Reticulum MeshChat von Liam Cottle.

Dieses Projekt ist unabhaengig vom originalen Reticulum MeshChat und steht in keiner Verbindung dazu.

• Website: meshchatx.com
• Aenderungsprotokoll: CHANGELOG.md
• Spenden: donate.md (Spenden)
• LXMF: T383838f489752fbef161c64d65e385a4e9fc74
• Umbrel App Store: apps.umbrel.com/app/meshchatx

<a href="https://apps.obtainium.imranr.dev/redirect.html?r=obtainium://add/https://github.com/Quad4-Software/MeshChatX"><img src="https://raw.githubusercontent.com/ImranR98/Obtainium/main/assets/graphics/badge_obtainium.png" height="60" alt="Get it on Obtainium"></a>

rngit NomadNet Node: T3838385399f5a0212477618821e91e88ce053b:/page/index.mu

rngit: T383838git clone rns://926baefe13daf5178c174f158dae1b45/quad4/MeshChatX

MeshChatX NomadNet Node: T383838c10d80b1a42fa958c37a6cc30dc04f53:/page/index.mu

Wichtige Aenderungen gegenueber Reticulum MeshChat

• Verwendet LXST fuer Anrufe
• Peewee-ORM durch direktes SQL ersetzt
• Axios durch natives T383838fetch ersetzt
• Electron 41.x (mit Node-24-Laufzeit)
• T383838.whl-Pakete mit Webserver und eingebauten Frontend-Assets fuer mehr Deploy-Optionen
• i18n
• PNPM und UV fuer Abhaengigkeiten

│ [!WARNING] MeshChatX garantiert keine Datenkompatibilitaet mit aelteren
│ Reticulum-MeshChat-Versionen. Erstellen Sie vor Migration oder Tests eine Datensicherung.

│ [!WARNING] Aeltere Systeme werden noch nicht unterstuetzt. Aktuelle Basis: Python T383838>=3.11 und Node
│ T383838>=24 (Electron 41 entspricht Node 24; T383838engines in T383838package.json und CI folgen derselben Linie).

Voraussetzungen

• Python T383838>=3.11 (aus T383838pyproject.toml)
• Node.js T383838>=24 (aus T383838package.json, Feld T383838engines)
• pnpm T38383811.1.2 (aus T383838package.json, Feld T383838packageManager)
• UV (verwendet in T383838Taskfile.yml und CI-Workflows)

Browser Versions Required:

Safari 16.4 oder neuer, Chrome 111 oder neuer, Firefox 128 oder neuer (Web-Oberflaeche).

T282828
task install
task format
task lint
task Tffa657test
task build


Installationsmethoden

Waehlen Sie die Methode passend zu Umgebung und Paketierung.

┌─────────────────────┬────────────────────┬─────────────────┬─────────────────────────────────────┐
│ Methode │ Frontend enthalten │ Architekturen │ Geeignet fuer │
├─────────────────────┼────────────────────┼─────────────────┼─────────────────────────────────────┤
│ Docker-Image │ Ja │ T383838linux/amd64, T383838l… │ Schnellster Start auf Linux-Servern │
│ Python Wheel (T383838.whl) │ Ja │ Jede Python-un… │ Headless/Webserver ohne Node-Build │
│ Linux AppImage │ Ja │ T383838x64, T383838arm64 │ Portabler Desktop-Einsatz │
│ Debian-Paket (T383838.deb) │ Ja │ T383838x64, T383838arm64 │ Debian/Ubuntu-Installation │
│ RPM-Paket (T383838.rpm) │ Ja │ Vom CI-Runner … │ Fedora/RHEL/openSUSE │
│ Aus Quellcode │ Lokal gebaut │ Host-Architekt… │ Entwicklung und individuelle Builds │
└─────────────────────┴────────────────────┴─────────────────┴─────────────────────────────────────┘

Hinweise:

• GitHub Actions baut getaggte Releases (Linux Wheel/AppImage/deb/rpm, Windows, macOS, Flatpak, Android-APKs bei Tags auf dev/master, SLSA, Entwurfs-Release) in einem Lauf über T383838.github/workflows/build-release.yml; das Container-Image über T383838.github/workflows/docker.yml. Android-CI für Branches und PRs: T383838.github/workflows/android-build.yml.
• Linux T383838x64 und T383838arm64 AppImage + DEB werden auf GitHub gebaut; RPM wird versucht und hochgeladen, wenn es erzeugt wird.

Docker

Docker Hub: T383838quad4io/meshchatx
GHCR: T383838ghcr.io/quad4-software/meshchatx

T282828
docker compose up -d

T282828
docker run -d --name reticulum-meshchatx Tffea00\
--restart unless-stopped Tffea00\
--init Tffea00\
--user T79c0ff1000:1000 Tffea00\
--security-opt no-new-privileges:true Tffea00\
--cap-drop ALL Tffea00\
--read-only Tffea00\
--tmpfs /tmp:noexec,nosuid,sizeTff7b72=256m Tffea00\
--tmpfs /home/meshchat:nosuid,sizeTff7b72=64m Tffea00\
--cpusTff7b72=T79c0ff2.0 Tffea00\
--memoryTff7b72=1g Tffea00\
--memory-reservationTff7b72=256m Tffea00\
--pids-limitTff7b72=T79c0ff512 Tffea00\
-p T79c0ff127.0.0.1:8000:8000 Tffea00\
-v meshchatx-config:/config Tffea00\
ghcr.io/quad4-software/meshchatx:latest


Sie koennen T383838quad4io/meshchatx:latest statt des GHCR-Images verwenden, wenn Sie Docker Hub bevorzugen.

Standard-Compose-Datei:

• T383838127.0.0.1:8000 auf dem Host -> Container-Port T3838388000
• Docker-Benanntes Volume T383838meshchatx-config -> T383838/config fuer Persistenz (passt zum Image-Benutzer meshchat, UID 1000, ohne Host-chown bei Bind-Mounts)

Optional: Host-Verzeichnis einbinden

Ersetzen Sie die Volume-Zeile durch T383838-v "$(pwd)/meshchat-config:/config" (Compose: T383838volumes-Eintrag des Service anpassen). Der Container laeuft als UID 1000; das Host-Verzeichnis muss dafuer beschreibbar sein (typisch: T383838sudo chown -R 1000:1000 ./meshchat-config). Leeres Verzeichnis vor dem ersten Start anlegen, damit Docker es nicht mit unpassenden Rechten erzeugt.

Named Volume pruefen oder loeschen

T282828
docker volume inspect meshchatx-config
docker rm -f reticulum-meshchatx
docker volume rm meshchatx-config

Installation aus Release-Artefakten

1) Linux AppImage (x64/arm64)

1. T383838ReticulumMeshChatX-v<version>-linux-<arch>.AppImage von den Releases herunterladen.
2. Ausfuehrbar machen und starten:

T282828
chmod +x ./ReticulumMeshChatX-v*-linux-*.AppImage
./ReticulumMeshChatX-v*-linux-*.AppImage

2) Debian/Ubuntu T383838.deb (x64/arm64)

1. T383838ReticulumMeshChatX-v<version>-linux-<arch>.deb herunterladen.
2. Installieren:

T282828
sudo apt install ./ReticulumMeshChatX-v*-linux-*.deb

3) RPM-basierte Systeme

1. T383838ReticulumMeshChatX-v<version>-linux-<arch>.rpm herunterladen, falls im Release vorhanden.
2. Installieren:

T282828
sudo rpm -Uvh ./ReticulumMeshChatX-v*-linux-*.rpm

4) Python Wheel (T383838.whl)

Release-Wheels enthalten die gebauten Web-Assets.

T282828
pip install ./reticulum_meshchatx-*-py3-none-any.whl
meshchatx --headless

T383838pipx wird ebenfalls unterstuetzt:

T282828
pipx install ./reticulum_meshchatx-*-py3-none-any.whl

Aus Quellcode ausfuehren (Webserver-Modus)

Fuer Entwicklung oder lokale Custom-Builds.

T282828
git clone https://github.com/Quad4-Software/MeshChatX.git
Tffa657cd MeshChatX
corepack Tffa657enable
pnpm config Tffa657set verify-store-integrity Tffa657true
pnpm install --frozen-lockfile
pip install Ta5d6ff"uv==0.11.15"
uv lock --check
uv sync --group dev
pnpm run build-frontend
uv run python -m meshchatx.meshchat --headless --host T79c0ff127.0.0.1


Hinweise zu den Installationsbefehlen:

• T383838pnpm install --frozen-lockfile verweigert Aenderungen an T383838pnpm-lock.yaml und schlaegt fehl, wenn die Lockdatei nicht zu T383838package.json passt. Damit wird verhindert, dass eine unerwartete Upstream-Version still eingespielt wird.
• T383838verify-store-integrity=true ist auch in der projektweiten T383838pnpm-workspace.yaml gesetzt; die explizite T383838pnpm config set-Zeile haertet zusaetzlich die Benutzerkonfiguration.
• Lifecycle-Skripte (T383838preinstall/T383838postinstall) sind in pnpm v11+ standardmaessig blockiert. Nur die unter T383838allowBuilds in T383838pnpm-workspace.yaml aufgefuehrten Pakete duerfen Installationsskripte ausfuehren (aktuell T383838electron, T383838electron-winstaller, T383838esbuild).
• T383838uv lock --check schlaegt frueh fehl, wenn T383838uv.lock nicht mit T383838pyproject.toml synchron ist; T383838uv sync --group dev aufloest danach nur aus der Lockdatei.
• Fuer eine strikte Lockfile-Installation (ohne implizite Lock-Aktualisierung) UV mit T383838pip install "uv==0.11.15" pinnen, passend zur CI-Version.

Wenn Sie absichtlich Abhaengigkeiten aktualisieren wollen, fuehren Sie T383838pnpm update / T383838uv lock in einem dedizierten Commit aus und pruefen Sie das resultierende Lockdatei-Diff vor dem Push.

Sandboxing (Linux)

Um das native T383838meshchatx-Programm (Alias: T383838meshchat) mit zusaetzlicher Dateisystem-Isolation auszufuehren, koennen Sie Firejail oder Bubblewrap (T383838bwrap) nutzen, bei weiterhin normalem Netzwerkzugriff fuer Reticulum und die Web-Oberflaeche. Vollstaendige Beispiele (pip/pipx, UV, Hinweise zu USB-Seriell) finden Sie in:


Dieselbe Seite erscheint in der in-app-Liste Dokumentation (MeshChatX-Dokumentation), wenn sie aus den gebuendelten oder synchronisierten T383838meshchatx-docs-Dateien ausgeliefert wird.

Linux-Desktop: Emoji-Schriften

Die Emoji-Auswahl rendert Standard-Unicode-Emoji mit den Systemschriften (Electron/Chromium). Wenn Emoji als leere Kaestchen („Tofu“) erscheinen, installieren Sie ein Farb-Emoji-Paket und starten Sie die App neu.

┌────────────────────────────┬──────────────────────────────────────────────────────────────────┐
│ Distribution (Beispiele) │ Paket │
├────────────────────────────┼──────────────────────────────────────────────────────────────────┤
│ Arch Linux, Artix, Manjaro │ T383838noto-fonts-emoji (T383838sudo pacman -S noto-fonts-emoji) │
│ Debian, Ubuntu │ T383838fonts-noto-color-emoji (T383838sudo apt install fonts-noto-color-emoji) │
│ Fedora │ T383838google-noto-emoji-color-fonts
└────────────────────────────┴──────────────────────────────────────────────────────────────────┘

Nach der Installation bei Bedarf T383838fc-cache -fv ausfuehren. Optional: T383838noto-fonts fuer breitere Symbolabdeckung bei minimalen Installationen.

Desktop-Pakete aus Quellcode bauen

Diese Skripte sind in T383838package.json und T383838Taskfile.yml definiert.

Linux x64 AppImage + DEB

T282828
pnpm run dist:linux-x64

Linux arm64 AppImage + DEB

T282828
pnpm run dist:linux-arm64

RPM

T282828
pnpm run dist:rpm

Oder ueber Task:

T282828
task dist:fe:rpm

Container-Build (Wheel, AppImage, deb, rpm)

T383838Dockerfile.build fuehrt die gleichen Schritte wie die CI aus (uv, pnpm, T383838task, APT-Paketabhaengigkeiten). Ausgelegt auf linux/amd64 (NodeSource amd64, Task amd64). Standardziel ist alles; per Build-Arg ueberschreibbar.

Werte fuer T383838MESHCHATX_BUILD_TARGETS: T383838all (Standard), T383838wheel oder T383838electron (AppImage + deb fuer x64 und arm64, RPM best-effort, kein wheel).

Build:

T282828
docker build -f Dockerfile.build -t meshchatx-build:local .

Nur Wheel:

T282828
docker build -f Dockerfile.build --build-arg Te6edf3MESHCHATX_BUILD_TARGETSTff7b72=wheel -t meshchatx-build:wheel .


T383838/artifacts aus dem fertigen Image auf den Host kopieren:

T282828
Te6edf3cidTff7b72=Tff7b72$(docker create meshchatx-build:localTff7b72)
docker cp Ta5d6ff"Tffd700${Te6edf3cidTffd700}Ta5d6ff:/artifactsTa5d6ff" ./meshchatx-artifacts
docker rm Ta5d6ff"Tffd700${Te6edf3cidTffd700}Ta5d6ff"


Architekturunterstuetzung

• Docker-Image: T383838amd64, T383838arm64
• Linux AppImage: T383838x64, T383838arm64
• Linux DEB: T383838x64, T383838arm64
• Windows: T383838x64, T383838arm64 (Build-Skripte vorhanden)
• macOS: Build-Skripte vorhanden (T383838arm64, T383838universal) fuer lokale Build-Umgebungen
• Android: nur Universal-APK (siehe android/README.md)

Android

MeshChatX unterstuetzt native Android-APK-Builds (nicht nur Termux).

APKs aus Quellcode bauen

Vom Repository-Root:

T282828
T8b949e# 1) Chaquopy-Wheels gemaess android/app/build.gradle bauen
bash scripts/build-android-wheels-local.sh

T8b949e# 2) Universal-APK bauen (ein Debug + ein Release pro Lauf; siehe android/README.md)
Tffa657cd android
./gradlew --no-daemon :app:assembleDebug :app:assembleRelease


Eine Android-Variante. Gradle synchronisiert den gesamten T383838meshchatx/-Ordner nach T383838app/src/main/python/meshchatx/, inklusive Offline-Repository-Raeder. Dokumentierte und veroeffentlichte Builds nutzen ausschliesslich Universal-Packaging: je ein Debug- und ein Release-APK pro Lauf, mit allen in T383838android/app/build.gradle gewaehlten nativen ABIs.

• Debug: T383838android/app/build/outputs/apk/debug/app-debug.apk
• Release: T383838android/app/build/outputs/apk/release/app-release-unsigned.apk

Hinweise:

• Release-Builds sind standardmaessig unsigniert, bis die Signatur konfiguriert ist (T383838scripts/sign-android-apks.sh).
• Die im Universal-APK enthaltenen nativen ABIs folgen T383838android/app/build.gradle (einschliesslich T383838armeabi-v7a, falls aktiviert). Das Bauen von Radern fuer T383838armeabi-v7a erfordert ein Android-SDK in T383838ANDROID_HOME (siehe T383838android/README.md).
• Existiert im Repo-Root T383838dist/reticulum_meshchatx-*.whl (z. B. nach T383838python -m build --wheel -o dist .), bevorzugt die Aktualisierung des Offline-Repositorys dieses Wheel gegueber PyPI. In der CI wird das Wheel vor dem Android-Gradle-Schritt gebaut.

Weitere Dokumentation:


Konfiguration

┌────────────────────────┬──────────────────────────────────────┬──────────────┬───────────────────┐
│ Argument │ Umgebungsvariable │ Standard │ Beschreibung │
├────────────────────────┼──────────────────────────────────────┼──────────────┼───────────────────┤
│ T383838--host │ T383838MESHCHAT_HOST │ T383838127.0.0.1 │ Webserver-Bind-A… │
│ T383838--port │ T383838MESHCHAT_PORT │ T3838388000 │ Webserver-Port │
│ T383838--no-https │ T383838MESHCHAT_NO_HTTPS │ T383838false │ HTTPS deaktivier… │
│ T383838--ssl-cert / T383838--ssl-key │ T383838MESHCHAT_SSL_CERT / T383838MESHCHAT_SSL_KEY │ (keine) │ PEM-Zertifikat u… │
│ T383838--rns-log-level │ T383838MESHCHAT_RNS_LOG_LEVEL │ (keine) │ Reticulum (RNS) … │
│ T383838--headless │ T383838MESHCHAT_HEADLESS │ T383838false │ Browser nicht au… │
│ T383838--auth │ T383838MESHCHAT_AUTH │ T383838false │ Basis-Authentifi… │
│ T383838--reset-password │ T383838MESHCHAT_RESET_PASSWORD │ T383838false │ Gespeicherten Pa… │
│ T383838--storage-dir │ T383838MESHCHAT_STORAGE_DIR │ T383838./storage │ Datenverzeichnis │
│ T383838--public-dir │ T383838MESHCHAT_PUBLIC_DIR │ auto/bundled │ Frontend-Verzeic… │
└────────────────────────┴──────────────────────────────────────┴──────────────┴───────────────────┘

Branches

┌────────┬────────────────────────────────────────────────────────────────────────────────┐
│ Branch │ Zweck │
├────────┼────────────────────────────────────────────────────────────────────────────────┤
│ T383838master │ Stabile Releases. Nur produktionsreifer Code. │
│ T383838dev │ Aktive Entwicklung. Kann instabile oder unvollstaendige Aenderungen enthalten. │
└────────┴────────────────────────────────────────────────────────────────────────────────┘

Entwicklung

Gaengige Aufgaben aus T383838Taskfile.yml:

T282828
task install
task format
task lint
task Tffa657test
task build


T383838Makefile-Ziele sind duenne Wrapper, die an T383838task delegieren (gleiche Befehle wie oben):

┌──────────────┬──────────────┬──────────────────────────────────────────────┐
│ Befehl │ Delegiert an │ Beschreibung │
├──────────────┼──────────────┼──────────────────────────────────────────────┤
│ T383838make install │ T383838task install │ pnpm- und UV-Abhaengigkeiten installieren │
│ T383838make run │ T383838task run │ MeshChatX ueber UV starten │
│ T383838make build │ T383838task build │ Frontend- und Backend-Artefakte bauen │
│ T383838make lint │ T383838task lint │ ESLint, vue-tsc, knip, Ruff und basedpyright │
│ T383838make test │ T383838task test │ Frontend- und Backend-Tests │
│ T383838make clean │ T383838task clean │ Build-Artefakte und node_modules entfernen │
└──────────────┴──────────────┴──────────────────────────────────────────────┘

Versionierung

Aktuelle Version in diesem Repository: T3838384.8.2.

• Fuer Release-Bumps bearbeiten Sie nur T383838version in T383838package.json.
T383838pnpm run version:sync (wird auch zu Beginn von T383838pnpm run build ausgefuehrt) verbreitet diese Version in T383838pyproject.toml, T383838meshchatx/src/version.py, T383838THIRD_PARTY_NOTICES.txt (Produktzeile), README / lang/README.\* (Zeilen mit aktueller Version), T383838docs/meshchatx_on_raspberry_pi.md (pipx-Beispiel) und Hilfsfelder in T383838packaging/arch/PKGBUILD.
T383838meshchatx.__version__ wird aus T383838meshchatx/src/version.py gelesen, ohne T383838meshchatx.src zu importieren, damit ein normales T383838import meshchatx leicht bleibt.
Changelog-Eintrage bleiben beim Release manuell.

Sicherheit

• Eingebaute Integritaetspruefungen und HTTPS/WSS-Standardwerte in der App-Laufzeit.
• CI- und Release-Builds in GitHub Actions.

Sprache hinzufuegen

Arbeitsablauf des Autors: ArgosTranslate, dann lokales LLM (Qwen 3 + Gemma 4).

Korrekturen von der Community sind willkommen, per LXMF oder wo Sie erreichbar sind.

Die Locale-Erkennung erfolgt automatisch. Fuegen Sie Dateien unter T383838meshchatx/src/frontend/locales/ hinzu (z. B. T383838xx.json) mit denselben Schluesseln wie T383838en.json und oberstes T383838_languageName fuer die Sprachauswahl. Sie koennen T383838en.json kopieren und alles manuell uebersetzen; maschinenunterstuetzte Erzeugung (optional) ist niemals erforderlich.

Optional: Argos-Translate-Start: fuer einen Entwurf aus T383838en.json koennen Sie T383838scripts/argos_translate.py nutzen; es behandelt Formatierung, farbige Ausgabe und schuetzt z. B. T383838{count}.

T282828
T8b949e# argostranslate ggf. installieren
pipx install argostranslate

T8b949e# Uebersetzungsskript ausfuehren
python scripts/argos_translate.py --from en --to xx --input meshchatx/src/frontend/locales/en.json --output meshchatx/src/frontend/locales/xx.json --name Ta5d6ff"Ihr Sprachname"


Nach jeder maschinellen Runde Grammatik, Kontext und Ton (formell vs. informell) mit LLM oder Mensch pruefen.

T383838pnpm test -- tests/frontend/i18n.test.js --run prueft die Schluesselparitaet mit T383838en.json.

Keine weiteren Code-Aenderungen noetig. App, Sprachwahl und Tests lesen Locales zur Build-Zeit aus T383838meshchatx/src/frontend/locales/.

Spenden

Spenden sind freiwillig. Sie helfen, Zeit und Aufwand fuer die Entwicklung dieser App zu finanzieren.

Moeglichkeiten: donate.md (Monero, Ko-Fi, Buy Me a Coffee).

Mitwirkende

Liam Cottle - Originales Reticulum MeshChat
RFnexus - micron-Parser (JavaScript)
markqvist - Reticulum, LXMF, LXST

Lizenz

Die projekt-eigenen Anteile stehen unter 0BSD.
Urspruengliche Upstream-Anteile von Reticulum MeshChat bleiben unter MIT.
Vollstaendiger Text und Hinweise in ../LICENSE.


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────